Products Shop Support Company |

Case Study: SecureBlackBox

EldoS Corporation develops a mainstream product called SecureBlackbox, which is a comprehensive collection of security components for the VCL, .NET and ActiveX platforms.

Historically, we've developed SecureBlackbox using Borland Delphi, starting with Delphi 4 and supporting all versions up to BDS 2006 (the most recent Delphi version at the time of writing). Single code base was used to build VCL components and ActiveX controls. When the .NET platform was introduced, our natural choice was to keep the current code base and use the Delphi for .NET compiler to deploy a .NET edition.

The .NET edition of SecureBlackbox quickly gained popularity and is now recognized as the leading security solution on the .NET component market. However, we started facing technical difficulties. SecureBlackbox 4 used the Delphi 8 compiler for .NET without update packs, and we encountered severe problems when trying to move to newer versions of the compiler, including compiler errors on our valid code.

Another issue was lack of support for versions of the .NET platform other than .NET 1.1. In particular, we needed to support .NET 2.0, the .NET Compact Framework and probably Mono, none of which Delphi for .NET supported properly at the time of writing.

Enter Oxygene

Oxygene was first publicly announced in early 2005 (then under the name Chrome) and immediately attracted our attention. We evaluated the possibilities and possible risks and decided to make our code compatible with both the Delphi for .NET and Oxygene compilers. This was a relatively simple task, as cryptography doesn't require sophisticated language features, and the syntax of Delphi and Oxygene are mostly compatible (there were some language differences here and there, but they could be easily worked around with IFDEF's).

As soon as the Oxygene compiler was released, we started working with it. One of our developers worked closely with RemObjects Software to develop a stable product suitable for commercial deployment.

After almost a year of in-house development and testing we introduced a preview of SecureBlackbox for the .NET Compact Framework and Mono. While those platforms didn't gain big interest, they have shown the strengths and weaknesses of a product built with Oxygene. We continued to release SecureBlackbox for those platforms as an experimental product branch.

Making the Switch

Until now, Borland has yet to provide any support for other CLR platforms, or even for .NET 2.0 in its Delphi compiler. As demand for .NET 2.0 grew among our customers, this left us with no choice other than to actively migrate our product entirely to Oxygene.

At the time of this writing, SecureBlackbox 5 is still in beta stage, however the Oxygene-built assemblies are the only version being offered to our beta testers. The preliminary tests show no serious problems on all the platforms that we actively support (including .NET 1.1, .NET and 2.0, .NET Compact Framework 1.0 and 2.0 and as well as Mono 1.0 and 2.0). We plan to drop Delphi for .NET completely after SecureBlackbox 5 is released and make exclusive use of the Oxygene compiler in the future.

Oxygene allowed us keep our leading position in the.NET component market. We believe that Oxygene is the product of choice if you want to stay current and make your software run on both today's and tomorrow's software platforms.

 

© Eldos & Eugene Mayevski — reprinted with kind permission.